from haystack import indexes
from apps.goods.models import SKU

# 需要继承自 indexes.searchIndexes, indexes.Indexable

class SKUIndex(indexes.SearchIndex,indexes.Indexable):

    # 属性
    # 类似 模型
    text = indexes.CharField(document=True,use_template=True)
    # 每个SearchIndex需要有一个（只有一个）字段 document=True。
    # 这向Haystack和搜索引擎都指示哪个字段是要在其中进行搜索的主要字段。

    # 选择document=True字段时，应在所有searchIndex类中为该字段统一命名，以免混淆，惯例命名text

    # text是主要搜索字段，这个字段的数据来源于数据库中的多个字段

    # use_template=True
    # 就需要我们 在 指定的路径下,创建文件,来指定要对哪些字段进行检索
    """
    您需要在模板目录中创建一个名为的新模板 search/indexes/子应用名字/模型类名小写
    _text.txt，并将以下内容放入其中：
    {{ object.title }}
    {{ object.user.get_full_name }}
    {{ object.body }}
    """

    # 方法
    # 要对哪个模型进行全文检索
    def get_model(self):
        # 返回类名即可
        return SKU

    # 对哪些数据进行检索
    def index_queryset(self, using=None):

        # 返回查询结果
        # self.get_model() = SKU
        return self.get_model().objects.filter(is_launched=True)


